﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using Ausy.Servey.QuestionProvider.Contract;
using System.Collections.ObjectModel;
using System.ServiceModel.Activation;
using Ausy.Servey.QuestionProvider.DataProvider;
using Ausy.Silverlight.Survey.QuestionModule.Model;

namespace Ausy.Servey.QuestionProvider
{
    // REMARQUE : vous pouvez utiliser la commande Renommer du menu Refactoriser pour changer le nom de classe "Service1" à la fois dans le code et le fichier de configuration.
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class QuestionService : IQuestionService
    {
        #region Private Members

        /// <summary>
        /// Gestionnaire d'accès aux données pour la gestion des questionnaires
        /// </summary>
        private QuestionnaireDataProvider dataProvider;

        #endregion

        #region Constructor

        /// <summary>
        /// Constructeur par défaut
        /// </summary>
        public QuestionService()
        {
            this.dataProvider = new QuestionnaireDataProvider();
        } 

        #endregion


        /// <summary>
        /// Cette méthode permet de récuperer un questionnaire avec ces questions
        /// </summary>
        /// <param name="value">Identifiant du Questionnaire</param>
        /// <returns>Questionnairecomprenant les questions</returns>
        public Questionnaire GetQuestionnaireByIdentifier(Guid value)
        {
            var returnValue = new Questionnaire();
            if (value != null)
            {
                returnValue = this.dataProvider.GetQuestionnaireByIdentifier(value);
            }
            return returnValue;
          
            //result.Title = "Questionnaire sur Azure";
            //for (int i = 0; i < 30; i++)
            //{
            //    var answerCollection = new Collection<Answer>();
            //    if (i % 2 > 0)
            //    {
            //        answerCollection.Add(new Answer() { Text = "Réponse A" });
            //        answerCollection.Add(new Answer() { Text = "Réponse B" });
            //        answerCollection.Add(new Answer() { Text = "Réponse C" });
            //        answerCollection.Add(new Answer() { Text = "Réponse D" });
            //    }
            //    else
            //    {
            //        answerCollection.Add(new Answer() { Text = "Réponse A" });
            //        answerCollection.Add(new Answer() { Text = "Réponse B" });
            //    }
            //    result.QuestionCollection.Add(new Question(String.Empty,String.Format("Question n°{0}", i), answerCollection));
            //}

            //return result;
        }       

        /// <summary>
        /// Cette méthode permet d'enregistrer la réponse d'un questionnaire par un utilisateur 
        /// </summary>
        /// <param name="userQuestionnaire">Réponse au questionnaire par un utilisateur</param>
        public void CreateUserQuestionnaire(UserQuestionnaire userQuestionnaire)
        {
            this.dataProvider.CreateUserQuestionnaire(userQuestionnaire);
        }
    }
}
